/**********************************************************************************************/
// And.cpp
//
// And elements
// Copyright Diamant Group 2007
/**********************************************************************************************/
#include "And.h"

/**********************************************************************************************/
#ifdef _MANAGED
#pragma managed(push, off)
#endif


/**********************************************************************************************/
BOOL APIENTRY DllMain( HMODULE hModule,
					  DWORD  ul_reason_for_call,
					  LPVOID lpReserved
					  )
{
	pInstance = new dgt_And();

	return TRUE;
}


DGTEXPORT dgt_Plugin* GetPlugin( void )
{
	return pInstance;
}

/**********************************************************************************************/
/**********************************************************************************************/
dgt_And::dgt_And()
{

}

/**********************************************************************************************/
dgt_And::~dgt_And()
{

}

/**********************************************************************************************/
void dgt_And::GetPluginInfo( dgt_PluginInfo& t_Info )
{
	t_Info.m_PluginName = _T("And elements");
	t_Info.m_PluginType = PLUGIN_LOGIGAL;
	t_Info.m_Description = _T("Abstract description of logical And elements");
	t_Info.m_Version = _T("BETA");
}

/**********************************************************************************************/
dgt_Element_Ptr dgt_And::get_Element(int inNum)
{
	dgt_Element_Ptr tElement;

	switch( inNum )
	{
		case 0:
		{
			tElement.set( new dgt_And_Two_One() );
			break;
		}
		case 1:
		{
			tElement.set( new dgt_And_Three_One() );
			break;
		}
		case 2:
		{
			tElement.set( new dgt_And_Four_One() );
			break;
		}
		case 3:
		{
			tElement.set( new dgt_And_Five_One() );
			break;
		}
	}

	return tElement;
}

/**********************************************************************************************/
unsigned long dgt_And::get_ElementCount()
{
	return 4;
}

/**********************************************************************************************/
#ifdef _MANAGED
#pragma managed(pop)
#endif
